package 纯字符串;

import java.util.LinkedHashMap;
import java.util.Map;

public class JZ50第一个只出现一次的字符 {

    /**
     * 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
     *
     * 示例:
     * s = "abaccdeff"
     * 返回 "b"
     * s = ""
     * 返回 " "
     *  
     * 限制：
     * 0 <= s 的长度 <= 50000
     */

    public char firstUniqChar(String s) {
        if(s==null||s.equals("")){
            return ' ';
        }
        LinkedHashMap<Character,Integer> linkedHashMap=new LinkedHashMap<>();
        char[] arr = s.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            Integer count = linkedHashMap.getOrDefault(arr[i],0);
            linkedHashMap.put(arr[i],count+1);
        }

        for (Map.Entry<Character, Integer> entry : linkedHashMap.entrySet()) {
            if(entry.getValue()==1){
                return entry.getKey();
            }
        }

        return ' ';
    }

}
